版本管理
# 列出版本
请求
GET /openapi/delivery/releases?projectKey=<projectKey>&pageNum=<pageNum>&pageSize=<pageSize>
1
Query 参数说明
| 参数名 | 类型 | 描述 | 必填 |
|---|---|---|---|
projectKey | string | 项目标识 | 是 |
pageNum | int | 指定页数 | 是 |
pageSize | int | 每页数量 | 是 |
成功返回说明
| 参数名 | 类型 | 描述 |
|---|---|---|
list | []DeliveryVersionInfo | 版本列表 |
total | int | 版本总数 |
DeliveryVersionInfo 参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
id | string | 版本ID |
version_name | string | 版本名称 |
source | string | 来源,manual、from_env、from_version |
type | string | 类型,K8SYaml 或 HelmChart |
status | string | 状态,success、failed、creating、retrying |
labels | []string | 标签 |
description | string | 描述 |
created_by | string | 创建人 |
created_time | int64 | 创建时间 |
成功返回示例
点击查看
{
"list": [
{
"id": "66287b110b8b8a631910f5ae",
"version_name": "v13",
"type": "K8SYaml",
"source": "manual",
"status": "success",
"labels": [],
"description": "labore id amet",
"created_by": "patrick",
"create_time": 1713928977
},
{
"id": "662751047ac26dae6a3a1472",
"version_name": "v12",
"type": "K8SYaml",
"source": "from_env",
"status": "failed",
"labels": [],
"description": "labore id amet",
"created_by": "patrick",
"create_time": 1713852676
}
],
"total": 12
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 获取版本详情
请求
GET /openapi/delivery/releases/:id
1
路径参数说明
| 参数名 | 类型 | 描述 | 必填 |
|---|---|---|---|
id | string | 版本ID | 是 |
成功返回说明
| 参数名 | 类型 | 说明 |
|---|---|---|
id | string | 版本ID |
version_name | string | 版本名称 |
project_key | string | 项目标识 |
source | string | 来源,manual、from_env、from_version |
env_name | string | 环境名称,source 为 from_env/from_version 时有效 |
production | bool | 是否为生产环境,source 为 from_env/from_version 时有效 |
type | string | 类型,K8SYaml 或 HelmChart |
status | string | 状态,success、failed、creating、retrying |
error | string | 错误信息 |
labels | []string | 标签 |
description | string | 描述 |
image_registry_id | string | 镜像仓库 ID |
chart_repo_name | string | Chart 仓库名称,type 为 HelmChart 时有效 |
services | []DeliveryVersionService | 服务列表 |
created_by | string | 创建人 |
created_time | int64 | 创建时间 |
DeliveryVersionService 参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
service_name | string | 服务名称 |
chart_name | string | Chart 名称 |
chart_version | string | Chart 版本 |
chart_status | string | Chart 推送状态 |
yaml_content | string | Yaml 内容 |
images | DeliveryVersionImage | 镜像列表 |
error | string | 推送错误信息 |
DeliveryVersionImage 参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
container_name | string | 容器名称 |
image_name | string | 镜像名称 |
source_image | string | 源镜像地址 |
source_image_tag | string | 源镜像 tag |
target_image | string | 目标镜像地址 |
target_image_tag | string | 目标镜像 tag |
push_image | bool | 是否推送镜像 |
status | string | 推送状态 |
error | string | 推送错误信息 |
成功返回示例
K8s YAML 项目
点击查看
{
"version": "v7.0.0",
"project_name": "yaml",
"env_name": "dev",
"production": false,
"type": "K8SYaml",
"source": "from_env",
"desc": "",
"labels": [],
"image_registry_id": "683047fe458904519c5f5c80",
"chart_repo_name": "",
"services": [
{
"service_name": "service1",
"chart_name": "",
"original_chart_version": "",
"chart_version": "",
"chart_status": "",
"yaml_content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n creationTimestamp: null\n labels:\n abc: \"\"\n app.kubernetes.io/instance: service1\n app.kubernetes.io/name: yaml\n env: dev\n name: service1\nspec:\n replicas: 1\n selector:\n matchLabels:\n app.kubernetes.io/instance: service1\n app.kubernetes.io/name: yaml\n strategy: {}\n template:\n metadata:\n creationTimestamp: null\n labels:\n app.kubernetes.io/instance: service1\n app.kubernetes.io/name: yaml\n spec:\n containers:\n - command:\n - /workspace/service1/\n image: koderover.tencentcloudcr.com/test/service1:v2\n imagePullPolicy: Always\n name: service1\n ports:\n - containerPort: 20221\n protocol: TCP\n resources: {}\nstatus: {}\n\n",
"images": [
{
"container_name": "service1",
"image_name": "service1",
"source_image": "koderover.tencentcloudcr.com/test/service1:20250908142239-3-patrick-01",
"source_image_tag": "20250908142239-3-patrick-01",
"target_image": "koderover.tencentcloudcr.com/test/service1:v2",
"target_image_tag": "v2",
"image_path": null,
"push_image": true,
"status": "passed",
"error": ""
}
],
"error": ""
},
{
"service_name": "service2",
"chart_name": "",
"original_chart_version": "",
"chart_version": "",
"chart_status": "",
"yaml_content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n creationTimestamp: null\n labels:\n app.kubernetes.io/instance: service2\n app.kubernetes.io/name: yaml\n name: service2\nspec:\n replicas: 1\n selector:\n matchLabels:\n app.kubernetes.io/instance: service2\n app.kubernetes.io/name: yaml\n strategy: {}\n template:\n metadata:\n creationTimestamp: null\n labels:\n app.kubernetes.io/instance: service2\n app.kubernetes.io/name: yaml\n spec:\n containers:\n - command:\n - /workspace/service2\n image: koderover.tencentcloudcr.com/test/service2:v2\n imagePullPolicy: Always\n name: service2\n ports:\n - containerPort: 20222\n protocol: TCP\n resources: {}\nstatus: {}\n\n",
"images": [
{
"container_name": "service2",
"image_name": "service2",
"source_image": "koderover.tencentcloudcr.com/test/service2:20250908143005-6-main",
"source_image_tag": "20250908143005-6-main",
"target_image": "koderover.tencentcloudcr.com/test/service2:v2",
"target_image_tag": "v2",
"image_path": null,
"push_image": true,
"status": "passed",
"error": ""
}
],
"error": ""
}
],
"status": "success",
"error": "",
"created_by": "lilian",
"created_at": 1757493873,
"deleted_at": 0
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Helm Chart 项目
点击查看
{
"version": "v1",
"project_name": "multi-chart",
"env_name": "dev",
"production": false,
"type": "HelmChart",
"source": "from_env",
"desc": "",
"labels": [],
"image_registry_id": "683047fe458904519c5f5c80",
"chart_repo_name": "test",
"services": [
{
"service_name": "service2",
"chart_name": "general-chart",
"original_chart_version": "",
"chart_version": "3.4.6",
"chart_status": "passed",
"yaml_content": "a: b\nc: d\nfullnameOverride: service2\nimage:\n repository: koderover.tencentcloudcr.com/koderover-demo/service2\n tag: 123\nimagePullSecretsName: default-registry-secret\nport: 20222\nreplicaCount: 1\nresources:\n limits:\n cpu: 20m\n mem: 20Mi\n requests:\n cpu: 10m\n mem: 10Mi\nx: kk\n",
"images": [
{
"container_name": "service2",
"image_name": "service2",
"source_image": "koderover.tencentcloudcr.com/koderover-demo/service2:latest",
"source_image_tag": "latest",
"target_image": "koderover.tencentcloudcr.com/koderover-demo/service2:123",
"target_image_tag": "123",
"image_path": {
"image": "image.repository",
"tag": "image.tag"
},
"push_image": true,
"status": "passed",
"error": ""
}
],
"error": ""
},
{
"service_name": "service3",
"chart_name": "service3",
"original_chart_version": "",
"chart_version": "3.4.13",
"chart_status": "passed",
"yaml_content": "a: b\nc: d\nfullnameOverride: service3\nimage:\n repository: koderover.tencentcloudcr.com/test/service3\n tag: 123\nimagePullSecretsName: default-registry-secret\nport: 20223\nreplicaCount: 1\nresources:\n limits:\n cpu: 20m\n mem: 20Mi\n requests:\n cpu: 10m\n mem: 10Mi\nx: kk\n",
"images": [
{
"container_name": "service3",
"image_name": "service3",
"source_image": "koderover.tencentcloudcr.com/test/service3:20250711170816-5-lilian01",
"source_image_tag": "20250711170816-5-lilian01",
"target_image": "koderover.tencentcloudcr.com/test/service3:123",
"target_image_tag": "123",
"image_path": {
"image": "image.repository",
"tag": "image.tag"
},
"push_image": true,
"status": "passed",
"error": ""
}
],
"error": ""
},
{
"service_name": "service1",
"chart_name": "general-chart",
"original_chart_version": "",
"chart_version": "1.83",
"chart_status": "passed",
"yaml_content": "a: b\nc: d\nfullnameOverride: service1\nimage:\n repository: koderover.tencentcloudcr.com/koderover-demo/service1\n tag: 123\nimagePullSecretsName: default-registry-secret\nport: 20221\nreplicaCount: 1\nresources:\n limits:\n cpu: 20m\n mem: 20Mi\n requests:\n cpu: 10m\n mem: 10Mi\nx: kk\n",
"images": [
{
"container_name": "service1",
"image_name": "service1",
"source_image": "koderover.tencentcloudcr.com/koderover-demo/service1:latest",
"source_image_tag": "latest",
"target_image": "koderover.tencentcloudcr.com/koderover-demo/service1:123",
"target_image_tag": "123",
"image_path": {
"image": "image.repository",
"tag": "image.tag"
},
"push_image": true,
"status": "passed",
"error": ""
}
],
"error": ""
}
],
"status": "success",
"error": "",
"created_by": "lilian",
"created_at": 1753930701,
"deleted_at": 0
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# 删除版本
请求
DELETE /openapi/delivery/releases/:id?projectKey=<projectKey>
1
路径参数说明
| 参数名 | 类型 | 描述 | 必填 |
|---|---|---|---|
id | string | 版本ID | 是 |
Query 参数说明
| 参数名 | 类型 | 描述 | 必填 |
|---|---|---|---|
projectKey | string | 项目标识 | 是 |
成功返回示例
{
"message": "success"
}
1
2
3
2
3
# K8s YAML 项目创建版本
请求
POST /openapi/delivery/releases/k8s
1
body 参数说明
| 参数名 | 类型 | 描述 | 必填 |
|---|---|---|---|
project_key | string | 项目标识 | 是 |
version_name | string | 版本名称 | 是 |
source | string | 来源,manual、from_env、from_version | 是 |
env_name | string | 环境名称,source 为 from_env 时必填 | 否 |
production | bool | 是否为生产环境,source 为 from_env 时必填 | 否 |
original_version_name | string | 源版本名称,source 为 from_version 时必填 | 否 |
desc | string | 描述 | 否 |
labels | []string | 标签 | 否 |
image_registry_id | string | 镜像仓库 ID | 是 |
services | []DeliveryVersionCreateService | 服务列表 | 是 |
DeliveryVersionCreateService 参数说明
| 参数名 | 类型 | 说明 | 必填 |
|---|---|---|---|
service_name | string | 服务名称 | 是 |
yaml_content | string | Yaml 内容 | 否 |
images | DeliveryVersionImage | 镜像列表 | 是 |
DeliveryVersionImage 参数说明
| 参数名 | 类型 | 说明 | 必填 |
|---|---|---|---|
container_name | string | 容器名称 | 是 |
image_name | string | 镜像名称,当 source 为 manual 时必填 | 否 |
source_image | string | 源镜像地址,当 source 为 manual 时必填 | 否 |
source_image_tag | string | 源镜像 tag,当 source 为 manual 时必填 | 否 |
target_image | string | 目标镜像地址 | 是 |
target_image_tag | string | 目标镜像 tag | 是 |
push_image | bool | 是否推送镜像 | 是 |
成功返回示例
{
"message": "success"
}
1
2
3
2
3
# Helm Chart 项目创建版本
请求
POST /openapi/delivery/releases/helm
1
body 参数说明
| 参数名 | 类型 | 描述 | 必填 |
|---|---|---|---|
project_key | string | 项目标识 | 是 |
version_name | string | 版本名称 | 是 |
source | string | 来源,manual、from_env、from_version | 是 |
env_name | string | 环境名称,source 为 from_env 时必填 | 否 |
production | bool | 是否为生产环境,source 为 from_env 时必填 | 否 |
original_version_name | string | 源版本名称,source 为 from_version 时必填 | 否 |
desc | string | 描述 | 否 |
labels | []string | 标签 | 否 |
image_registry_id | string | 镜像仓库 ID | 是 |
chart_repo_name | string | Chart 仓库名称 | 是 |
services | []DeliveryVersionCreateService | 服务列表 | 是 |
DeliveryVersionCreateService 参数说明
| 参数名 | 类型 | 说明 | 必填 |
|---|---|---|---|
service_name | string | 服务名称 | 是 |
chart_version | string | Chart 版本,type 为 HelmChart 时必填 | 是 |
yaml_content | string | Values 内容 | 否 |
images | DeliveryVersionImage | 镜像列表 | 是 |
DeliveryVersionImage 参数说明
| 参数名 | 类型 | 说明 | 必填 |
|---|---|---|---|
container_name | string | 容器名称 | 是 |
image_name | string | 镜像名称,当 source 为 manual 时必填 | 否 |
source_image | string | 源镜像地址,当 source 为 manual 时必填 | 否 |
source_image_tag | string | 源镜像 tag,当 source 为 manual 时必填 | 否 |
target_image | string | 目标镜像地址 | 是 |
target_image_tag | string | 目标镜像 tag | 是 |
push_image | bool | 是否推送镜像 | 是 |
成功返回示例
{
"message": "success"
}
1
2
3
2
3
# 重试创建版本
请求
POST /openapi/delivery/releases/retry
1
body 参数说明
| 参数名 | 类型 | 描述 | 必填 |
|---|---|---|---|
id | string | 版本ID | 是 |
projectKey | string | 项目标识 | 是 |
成功返回示例
{
"message": "success"
}
1
2
3
2
3


